/**
 * 创建管理员账号脚本
 */
const { User } = require('../models');
const { sequelize } = require('../config/database');

async function createAdmin() {
  try {
    // 测试数据库连接
    await sequelize.authenticate();
    console.log('数据库连接成功');

    // 创建默认管理员账号
    const adminData = {
      username: 'admin',
      password: 'admin123',  // 实际项目中应该使用加密密码
      nickname: '系统管理员',
      email: 'admin@example.com',
      role: 'admin',
      permissions: ['*'],  // 所有权限
      status: 1
    };

    // 检查管理员是否已存在
    const existingAdmin = await User.findOne({
      where: { username: adminData.username }
    });

    if (existingAdmin) {
      console.log('管理员账号已存在，无需创建');
      return;
    }

    // 创建管理员账号
    const admin = await User.create(adminData);
    console.log('管理员账号创建成功:', {
      id: admin.id,
      username: admin.username,
      role: admin.role
    });

    console.log('管理员账号信息:');
    console.log('- 用户名: admin');
    console.log('- 密码: admin123');
    console.log('- 角色: 系统管理员');

  } catch (error) {
    console.error('创建管理员账号失败:', error);
  } finally {
    // 关闭数据库连接
    await sequelize.close();
  }
}

// 执行创建管理员函数
createAdmin(); 